package com.peas.platform.module.icims.expenditure.expenses.api.req;

import com.peas.platform.module.icims.expenditure.expenses.controller.criteria.ExpenditureReimbursementCriteria;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.Size;
import java.math.BigDecimal;

@Data
@EqualsAndHashCode(callSuper = false)
public class ExpenditureReimbursementReq extends ExpenditureReimbursementCriteria {

    // ExpenditureAccountType
    // 1:零余额用款额度
    // 2:银行存款
    // 3:库存现金
    private String accountType;

    // 收款相关
    @ApiModelProperty(value = "收款类型", notes = "枚举取值:ExpenditureReimbursementPayeeType")
    private String payeeType;

    @ApiModelProperty(value = "收款单位ID")
    private Long expenditureProceedsId;

    @ApiModelProperty(value = "收款单位名称")
    private String proceedsCompany;

    @ApiModelProperty(value = "收款银行")
    private String proceedsBank;

    @ApiModelProperty(value = "收款账号")
    private String proceedsAccount;

    @ApiModelProperty(value = "收款公务卡持卡人用户ID")
    private Long expenditureBusinessCardId;

    @ApiModelProperty(value = "收款公务卡持卡人")
    private String businessCardName;

    @ApiModelProperty(value = "收款公务卡开户银行")
    private String businessCardBank;

    @ApiModelProperty(value = "收款公务卡号")
    private String businessCardAccount;

    @ApiModelProperty(value = "收款摘要")
    private String payeeSummary;

    // 支付相关
    @ApiModelProperty(value = "支付方式", notes = "字典取值:ExpenditurePay")
    @Size(max = 20, message = "支付方式不能超过20个字符")
    private String payType;

    @ApiModelProperty(value = "支付结算方式", notes = "字典取值:ExpenditureSettlement")
    private String settleType;

    @ApiModelProperty(value = "支付账户")
    private String payAccount;

    @ApiModelProperty(value = "支付收付标识", notes = "枚举取值:ExpenditurePay")
    private String pay;

    @ApiModelProperty(value = "支付金额")
    private BigDecimal amount;

    @ApiModelProperty(value = "支付摘要")
    private String paySummary;

}
